using System.Text;

namespace OracleInternal.SqlAndPlsqlParser.LocalParsing.Ansi
{
	internal abstract class OracleLpAnsiCrossOuterApplyClause : OracleLpBaseAnsiJoinClause
	{
		protected OracleLpCrossOuterApplyType m_vType;

		public override OracleLpJoinClauseType ClauseType => OracleLpJoinClauseType.CrossOuterApply;

		public OracleLpCrossOuterApplyType Type
		{
			get
			{
				return m_vType;
			}
			set
			{
				m_vType = value;
			}
		}

		public OracleLpAnsiCrossOuterApplyClause(OracleLpFromListTerm ft)
			: base(ft)
		{
		}

		internal override void ToString(StringBuilder sb)
		{
			string depthIndent = base.DepthIndent;
			sb.Append(depthIndent);
			sb.Append("JoinType:  ");
			sb.Append(ClauseType);
			sb.Append("  CrossOuterApplyJoinType:  ");
			sb.Append(m_vType);
			sb.Append('\n');
		}
	}
}
